'''
1表示 可以，0表示不行
_____________________________________________
模式      r     r+      w      w+     a    a+
读        1     1       0      1      0    1
写        0     1       1      1      1    1
创建      0     0       1      1      1    1
覆盖      0     0       1      1      0    0
指针在头  1     1       1      1      0    0
指针在尾  0     0       0      0      1    1 
_____________________________________________
'''
import uos
import utime as time
from driver import GPIO
import nw
import sntp

#案例演示用数据，真实项目直接读取传感器数值。
cTemp = 26.5
humidity = 40
light = 400
#-----------------------------------------
lengh = 0



#中断回调函数
def key1_callback(args):
    #读取数据
    read_from_txt()


def enable_key():
    #开启中断
    key1.enableIrq(key1_callback)

def read_from_txt():
    global lengh
    p=open('/flash/filename1.csv','r+')
    c=p.read(lengh)     #read是逐字符地读取,read可以指定参数，设定需要读取多少字符，无论一个英文字母还是一个汉字都是一个字符
    # c=p.readlines()   #readlines会把内容以列表的形式输出。
    #c=p.readline()     #readline只能读取第一行代码，原理是读取到第一个换行符就停止。
    print('content in filename1.csv is:')
    print('-'*30)
    print(c)
    p.close()
    print('-'*30)

def write_to_txt():
    global lengh,cTemp,humidity,light
    #1.将内容写入txt文件中（当sd卡中没有filename1.txt时，w模式会创建该文件）
    f=open('/flash/filename1.csv','w+')
    date,t_time = get_time()
    for i in range(20):
        lens = f.write("date,{},time,{},cTemp,{},humidity,{},light,{}\n".format(date,t_time,cTemp,humidity,light))    #写入传感器数据
        lengh += lens   #计算文本字节总长度
    f.close()

def init():
    #查看sd卡中有什么文件
    a = uos.listdir('/flash')
    l = len(a)
    print('flash files:',a)
    for i in range(l):
        #if i > 0:
        uos.remove('/flash/'+(a[i]))  #删除所有文件

    print("files in flash are:",uos.listdir('/flash'))


def get_time():
    t=time.localtime()
    d="{:04d}-{:02d}-{:02d}".format(t[0],t[1],t[2])
    t = "{:02d}:{:02d}:{:02d}".format(t[3],t[4],t[5])
    return d,t

if __name__ == '__main__': 
    #按键
    key1=GPIO(10,10)
    key1.open("KEY1")
    enable_key()    #按键中断回调，按下按键读取数据
    nw.connect_network()    #联网
    sntp.settime()    #校时
    init() 
    #写入数据
    write_to_txt()
    print('write-csv')
    while True:
        time.sleep(1)







